import { Enum } from "cc";

/***
 * 服务器接口名称枚举
 */
export enum ServerApi {
    Register = 'accountService.registerAccount',// 注册
    ServerInfos = 'accountService.getServerInfos',// 获取服务器信息
    Login = "accountService.login",// 登陆
    updateUserInfoState = "accountService.updateUserInfoState",// 更新用户状态信息
    selectServerAndArea = "accountService.selectServerAndArea",
    getUserInfo = "accountService.getUserInfo",// 获取用户信息，在登陆时需要
}

/***
 * 有限状态机参数类型枚举
 */
export enum FSM_PARAM_TYPE_ENUM {
    NUMBER = 'NUMBER',
    TRIGGER = 'TRIGGER',
}
export enum LOADING {
    START = 'start'
}

export enum 元素 {
    水元素,
    冰元素,
    火元素,
}

export class Constant {

    //本地缓存key值
    public static LOCAL_CACHE = {
        PLAYER: 'player',               //玩家基础数据缓存，如金币砖石等信息，暂时由客户端存储，后续改由服务端管理
        SETTINGS: 'settings',           //设置相关，所有杂项都丢里面进去
        HISTORY: "history",                   //关卡通关数据
        UserInfo: "UserInfo",
    }

    static PTM_RATIO = 1;

    static Tips = {
        TIPS_1: '注册成功',
        TIPS_2: '账户名长度必须在6到12个字符之间，并且只能包含数字和字母',
        TIPS_3: '密码长度必须在6到12个字符之间，并且只能包含数字和字母',
        TIPS_4: '网络连接失败，请检查网络连接',// logicBoot
        TIPS_5: '已清除登陆信息',
        connected_6: '成功连接服务器',
    }

    static WaitConfig = {// util.wait调用设置等待时间
        loadind: 1,
    };

    static GAME_OBJ_TYPE = { // 二进制位
        PLAYER: 1,
        COIN: 2
    };

    static COIN_TYPE = Enum({
        COIN: 1,
        PROP: 2
    });

    static EVENT_NAME = {
        on_init_server_info: 'onInitServerInfosSuccess',// 成功初始化服务器区服信息
        // 以下是样例
        IS_TOUCH: 'is_touch', // 触摸 
        GAME_INIT: 'game_init',
    }

    static PANEL_NAME = {
        // GAME_OVER: 'fight/gameOver',//结算界面 
        // FIGHT_UI: 'fight/fightUI', //结算界面 
        START_GAME: 'fight/startPanel', //开始游戏 
        // SELECT_GAME: 'fight/selectPanel', //选择界面 
        // TIP_PANEL: 'fight/tipPanel', //离开界面 
        // JOIN_ROOM_PANEL: 'fight/joinRoomPanel', //加入房间 
        // TRANSITION: 'fight/transitionPanel', // 过度界面
        LOADING01: 'loading/loading01',// 女巫练金小加载界面
        // TRANSITION_BG: 'fight/transitionBgPanel', // 过度界面
        // MESSAGE_PANEL: 'fight/messagePanel', // 消息面板
        // DOWNOFF_PANEL: 'fight/downOffPanel', // 断线
        // MEDIA_PANEL: 'fight/mediaPanel', // 对话
        LOGIN_PANEL: 'interact/loginPanel',// 用户注册登陆面板
        HOT_UPDATE_PANEL: 'hotUpdate/updatePanel',// 用户热更新界面
        HALL_PANEL: 'hall/hallPanel',//游戏大厅面板
    }
    static TIPS_ANI_NAME = {// 提示动画命名
        tips2aniTop: 'tips2ani',// 偏上位置提示动画
        commonTipsAniCenter: 'commonTipsAni',// 中部位置提示动画
    }

    static SCENE_NAME = {//主场景名 xxkk 20231031
        FIGHT: "fight",
        SLECT: "select"
    }

    static AUDIO_NAME = {
        BACKGROUND: 'background',      //背景音乐 
        WIN: 'win', //胜利音效 
        GO: 'go',   //游戏开始音效
    }

    static EFFECT_NAME = {
        RUNNING: 'running',              //跑步特效
        WIN: "leaveWinAni",
        TRANSITION: "transition07",     //过场动画
    }

    //道具类型
    static PROP_TYPE = {
        TO_SELF: "toSelf",//对己
        TO_ENEMY: "toEnemy",//对敌人
    }

    //玩家动画类型
    static ANI_TYPE = {
        IDLE: 'idle',//普通待机
        RUN: 'run',//空手跑
    }

    public static EASY_TOUCH = {
        TOUCH_LEFT_X: 'touchLeftX', // 左手 x
        TOUCH_LEFT_Y: 'touchLeftY', // 左右 y
        TOUCH_RIGHT_X: 'touchRightX', // 右手 x
        TOUCH_RIGHT_Y: 'touchRightY', // 右手 y
    }

    static READY_PREFAB = {
        GIRL_MODEL: "fight/girlUI",       //ui上显示的女生模型
        JOIN_EFFECT: "joinEff",          //加入房间特效
        VS_EFFECT: "vsAni",             //开始特效
    }

    static ROOM_TIPS = {
        CREATE: "创建房间。。。",
        WAITING: "请稍等，房主正在创建房间。。。",
        IN_ROOM: "已在房间内。。。",
    }

    static WORLD_ID = "cocosworldid00000"

    static START_GAME: string = 'startGame';

    static DISMISS: string = 'dismiss';

    static START_GAME_TIME: string = 'start_game_time';
}
